home *** CD-ROM | disk | FTP | other *** search
- /*
- GEMovie.c
-
- Graphic Elements QuickTime movie test
-
- Copyright 1995 by Al Evans. All rights reserved.
-
- 5/11/95
-
- */
-
- #include "GEMovie.h"
- #include "QTMovieGE.h"
-
- pascal void TestMovieAutochange(GEWorldPtr world, GrafElPtr movieElement);
-
- Boolean LoadQTMovieScene(GEWorldPtr world)
- {
- FSSpec movieFSSpec;
- OSErr err;
- short mRefNum;
- Movie movie;
- GrafElPtr element;
-
- err = FSMakeFSSpec(0, 0, "\pQTClock2.moov", &movieFSSpec);
- if (err != noErr)
- return false;
- err = OpenMovieFile(&movieFSSpec, &mRefNum, fsRdPerm);
- if (err != noErr)
- return false;
- err = NewMovieFromFile(&movie, mRefNum, nil, nil, newMovieActive, nil);
- CloseMovieFile(mRefNum);
- if (err != noErr)
- return false;
-
- element = NewQTMovieGE(world, movieID, moviePlane, movie, 20, 143);
- if (element == nil) {
- DisposeMovie(movie);
- return false;
- }
- SetTimeBaseFlags(GetMovieTimeBase(movie), loopTimeBase);
- err = LoadMovieIntoRam(movie, 0, GetMovieDuration(movie), keepInRam);
- SetAutoChange(world, movieID, TestMovieAutochange, nil, 67);
- return true;
- }
-
- void PlayGEMovie(GEWorldPtr world, Boolean playIt)
- {
- Movie geMovie = GetGEMovie(world, movieID);
-
- if (geMovie != nil) {
- SetMovieRate(geMovie, playIt?0x00010000:0);
- }
- }
-
- pascal void TestMovieAutochange(GEWorldPtr world, GrafElPtr movieElement)
- {
- if (movieElement->animationRect.right > (world->animationRect.right - 20))
- movieElement->changeData = (Ptr) -1;
- else
- if (movieElement->animationRect.left < (world->animationRect.left + 20))
- movieElement->changeData = nil;
- if (movieElement->changeData == nil)
- // Move right
- PtrMoveElement(world, movieElement, 1, 0);
- else
- PtrMoveElement(world, movieElement, -1, 0);
- // Call "standard" autochange proc for movie element
- GEMovieAutoChange(world, movieElement);
- }
-
-